<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/taskstats.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/taskstats.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/* taskstats.h - exporting per-task statistics</span>
<a name="2" /><span class="True">       2:</span> <span class="k"> *</span>
<a name="3" /><span class="True">       3:</span> <span class="k"> * Copyright (C) Shailabh Nagar, IBM Corp. 2006</span>
<a name="4" /><span class="True">       4:</span> <span class="k"> *           (C) Balbir Singh,   IBM Corp. 2006</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> *           (C) Jay Lan,        SGI, 2006</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> *</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> * This program is free software; you can redistribute it and/or modify it</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> * under the terms of version 2.1 of the GNU Lesser General Public License</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> * as published by the Free Software Foundation.</span>
<a name="10" /><span class="True">      10:</span> <span class="k"> *</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> * This program is distributed in the hope that it would be useful, but</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> */</span>
<a name="15" /><span class="True">      15:</span> 
<a name="16" /><span class="True">      16:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX1RBU0tTVEFUU19IXzA_"><span class="b">_LINUX_TASKSTATS_H</span></a>
<a name="17" /><span class="True">      17:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX1RBU0tTVEFUU19IXzA_"><span class="b">_LINUX_TASKSTATS_H</span></a>
<a name="18" /><span class="True">      18:</span> 
<a name="19" /><span class="True">      19:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="20" /><span class="True">      20:</span> 
<a name="21" /><span class="True">      21:</span> <span class="k">/* Format for per-task data returned to userland when</span>
<a name="22" /><span class="True">      22:</span> <span class="k"> *    - a task exits</span>
<a name="23" /><span class="True">      23:</span> <span class="k"> *    - listener requests stats for a task</span>
<a name="24" /><span class="True">      24:</span> <span class="k"> *</span>
<a name="25" /><span class="True">      25:</span> <span class="k"> * The struct is versioned. Newer versions should only add fields to</span>
<a name="26" /><span class="True">      26:</span> <span class="k"> * the bottom of the struct to maintain backward compatibility.</span>
<a name="27" /><span class="True">      27:</span> <span class="k"> *</span>
<a name="28" /><span class="True">      28:</span> <span class="k"> *</span>
<a name="29" /><span class="True">      29:</span> <span class="k"> * To add new fields</span>
<a name="30" /><span class="True">      30:</span> <span class="k"> *    a) bump up TASKSTATS_VERSION</span>
<a name="31" /><span class="True">      31:</span> <span class="k"> *    b) add comment indicating new version number at end of struct</span>
<a name="32" /><span class="True">      32:</span> <span class="k"> *    c) add new fields after version comment; maintain 64-bit alignment</span>
<a name="33" /><span class="True">      33:</span> <span class="k"> */</span>
<a name="34" /><span class="True">      34:</span> 
<a name="35" /><span class="True">      35:</span> 
<a name="36" /><span class="True">      36:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VEFTS1NUQVRTX1ZFUlNJT05fMA__"><span class="b">TASKSTATS_VERSION</span></a>    <span class="c">8</span>
<a name="37" /><span class="True">      37:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_VFNfQ09NTV9MRU5fMA__"><span class="b">TS_COMM_LEN</span></a>        <span class="c">32</span>    <span class="k">/* should be &gt;= TASK_COMM_LEN</span>
<a name="38" /><span class="True">      38:</span> <span class="k">                     * in linux/sched.h */</span>
<a name="39" /><span class="True">      39:</span> 
<a name="40" /><span class="True">      40:</span> <span class="m">struct</span> <span class="b">taskstats</span> <span class="f">{</span>
<a name="41" /><span class="True">      41:</span> 
<a name="42" /><span class="True">      42:</span>     <span class="k">/* The version number of this struct. This field is always set to</span>
<a name="43" /><span class="True">      43:</span> <span class="k">     * TAKSTATS_VERSION, which is defined in &lt;linux/taskstats.h&gt;.</span>
<a name="44" /><span class="True">      44:</span> <span class="k">     * Each time the struct is changed, the value should be incremented.</span>
<a name="45" /><span class="True">      45:</span> <span class="k">     */</span>
<a name="46" /><span class="True">      46:</span>     <span class="b">__u16</span>    <span class="b">version</span><span class="f">;</span>
<a name="47" /><span class="True">      47:</span>     <span class="b">__u32</span>    <span class="b">ac_exitcode</span><span class="f">;</span>        <span class="k">/* Exit status */</span>
<a name="48" /><span class="True">      48:</span> 
<a name="49" /><span class="True">      49:</span>     <span class="k">/* The accounting flags of a task as defined in &lt;linux/acct.h&gt;</span>
<a name="50" /><span class="True">      50:</span> <span class="k">     * Defined values are AFORK, ASU, ACOMPAT, ACORE, and AXSIG.</span>
<a name="51" /><span class="True">      51:</span> <span class="k">     */</span>
<a name="52" /><span class="True">      52:</span>     <span class="b">__u8</span>    <span class="b">ac_flag</span><span class="f">;</span>        <span class="k">/* Record flags */</span>
<a name="53" /><span class="True">      53:</span>     <span class="b">__u8</span>    <span class="b">ac_nice</span><span class="f">;</span>        <span class="k">/* task_nice */</span>
<a name="54" /><span class="True">      54:</span> 
<a name="55" /><span class="True">      55:</span>     <span class="k">/* Delay accounting fields start</span>
<a name="56" /><span class="True">      56:</span> <span class="k">     *</span>
<a name="57" /><span class="True">      57:</span> <span class="k">     * All values, until comment &quot;Delay accounting fields end&quot; are</span>
<a name="58" /><span class="True">      58:</span> <span class="k">     * available only if delay accounting is enabled, even though the last</span>
<a name="59" /><span class="True">      59:</span> <span class="k">     * few fields are not delays</span>
<a name="60" /><span class="True">      60:</span> <span class="k">     *</span>
<a name="61" /><span class="True">      61:</span> <span class="k">     * xxx_count is the number of delay values recorded</span>
<a name="62" /><span class="True">      62:</span> <span class="k">     * xxx_delay_total is the corresponding cumulative delay in nanoseconds</span>
<a name="63" /><span class="True">      63:</span> <span class="k">     *</span>
<a name="64" /><span class="True">      64:</span> <span class="k">     * xxx_delay_total wraps around to zero on overflow</span>
<a name="65" /><span class="True">      65:</span> <span class="k">     * xxx_count incremented regardless of overflow</span>
<a name="66" /><span class="True">      66:</span> <span class="k">     */</span>
<a name="67" /><span class="True">      67:</span> 
<a name="68" /><span class="True">      68:</span>     <span class="k">/* Delay waiting for cpu, while runnable</span>
<a name="69" /><span class="True">      69:</span> <span class="k">     * count, delay_total NOT updated atomically</span>
<a name="70" /><span class="True">      70:</span> <span class="k">     */</span>
<a name="71" /><span class="True">      71:</span>     <span class="b">__u64</span>    <span class="b">cpu_count</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">aligned</span><span class="f">(</span><span class="c">8</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="72" /><span class="True">      72:</span>     <span class="b">__u64</span>    <span class="b">cpu_delay_total</span><span class="f">;</span>
<a name="73" /><span class="True">      73:</span> 
<a name="74" /><span class="True">      74:</span>     <span class="k">/* Following four fields atomically updated using task-&gt;delays-&gt;lock */</span>
<a name="75" /><span class="True">      75:</span> 
<a name="76" /><span class="True">      76:</span>     <span class="k">/* Delay waiting for synchronous block I/O to complete</span>
<a name="77" /><span class="True">      77:</span> <span class="k">     * does not account for delays in I/O submission</span>
<a name="78" /><span class="True">      78:</span> <span class="k">     */</span>
<a name="79" /><span class="True">      79:</span>     <span class="b">__u64</span>    <span class="b">blkio_count</span><span class="f">;</span>
<a name="80" /><span class="True">      80:</span>     <span class="b">__u64</span>    <span class="b">blkio_delay_total</span><span class="f">;</span>
<a name="81" /><span class="True">      81:</span> 
<a name="82" /><span class="True">      82:</span>     <span class="k">/* Delay waiting for page fault I/O (swap in only) */</span>
<a name="83" /><span class="True">      83:</span>     <span class="b">__u64</span>    <span class="b">swapin_count</span><span class="f">;</span>
<a name="84" /><span class="True">      84:</span>     <span class="b">__u64</span>    <span class="b">swapin_delay_total</span><span class="f">;</span>
<a name="85" /><span class="True">      85:</span> 
<a name="86" /><span class="True">      86:</span>     <span class="k">/* cpu &quot;wall-clock&quot; running time</span>
<a name="87" /><span class="True">      87:</span> <span class="k">     * On some architectures, value will adjust for cpu time stolen</span>
<a name="88" /><span class="True">      88:</span> <span class="k">     * from the kernel in involuntary waits due to virtualization.</span>
<a name="89" /><span class="True">      89:</span> <span class="k">     * Value is cumulative, in nanoseconds, without a corresponding count</span>
<a name="90" /><span class="True">      90:</span> <span class="k">     * and wraps around to zero silently on overflow</span>
<a name="91" /><span class="True">      91:</span> <span class="k">     */</span>
<a name="92" /><span class="True">      92:</span>     <span class="b">__u64</span>    <span class="b">cpu_run_real_total</span><span class="f">;</span>
<a name="93" /><span class="True">      93:</span> 
<a name="94" /><span class="True">      94:</span>     <span class="k">/* cpu &quot;virtual&quot; running time</span>
<a name="95" /><span class="True">      95:</span> <span class="k">     * Uses time intervals seen by the kernel i.e. no adjustment</span>
<a name="96" /><span class="True">      96:</span> <span class="k">     * for kernel&apos;s involuntary waits due to virtualization.</span>
<a name="97" /><span class="True">      97:</span> <span class="k">     * Value is cumulative, in nanoseconds, without a corresponding count</span>
<a name="98" /><span class="True">      98:</span> <span class="k">     * and wraps around to zero silently on overflow</span>
<a name="99" /><span class="True">      99:</span> <span class="k">     */</span>
<a name="100" /><span class="True">     100:</span>     <span class="b">__u64</span>    <span class="b">cpu_run_virtual_total</span><span class="f">;</span>
<a name="101" /><span class="True">     101:</span>     <span class="k">/* Delay accounting fields end */</span>
<a name="102" /><span class="True">     102:</span>     <span class="k">/* version 1 ends here */</span>
<a name="103" /><span class="True">     103:</span> 
<a name="104" /><span class="True">     104:</span>     <span class="k">/* Basic Accounting Fields start */</span>
<a name="105" /><span class="True">     105:</span>     <span class="m">char</span>    <span class="b">ac_comm</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_VFNfQ09NTV9MRU5fMA__"><span class="b">TS_COMM_LEN</span></a><span class="f">]</span><span class="f">;</span>    <span class="k">/* Command name */</span>
<a name="106" /><span class="True">     106:</span>     <span class="b">__u8</span>    <span class="b">ac_sched</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">aligned</span><span class="f">(</span><span class="c">8</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="107" /><span class="True">     107:</span>                     <span class="k">/* Scheduling discipline */</span>
<a name="108" /><span class="True">     108:</span>     <span class="b">__u8</span>    <span class="b">ac_pad</span><span class="f">[</span><span class="c">3</span><span class="f">]</span><span class="f">;</span>
<a name="109" /><span class="True">     109:</span>     <span class="b">__u32</span>    <span class="b">ac_uid</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">aligned</span><span class="f">(</span><span class="c">8</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="110" /><span class="True">     110:</span>                     <span class="k">/* User ID */</span>
<a name="111" /><span class="True">     111:</span>     <span class="b">__u32</span>    <span class="b">ac_gid</span><span class="f">;</span>            <span class="k">/* Group ID */</span>
<a name="112" /><span class="True">     112:</span>     <span class="b">__u32</span>    <span class="b">ac_pid</span><span class="f">;</span>            <span class="k">/* Process ID */</span>
<a name="113" /><span class="True">     113:</span>     <span class="b">__u32</span>    <span class="b">ac_ppid</span><span class="f">;</span>        <span class="k">/* Parent process ID */</span>
<a name="114" /><span class="True">     114:</span>     <span class="b">__u32</span>    <span class="b">ac_btime</span><span class="f">;</span>        <span class="k">/* Begin time [sec since 1970] */</span>
<a name="115" /><span class="True">     115:</span>     <span class="b">__u64</span>    <span class="b">ac_etime</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">aligned</span><span class="f">(</span><span class="c">8</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="116" /><span class="True">     116:</span>                     <span class="k">/* Elapsed time [usec] */</span>
<a name="117" /><span class="True">     117:</span>     <span class="b">__u64</span>    <span class="b">ac_utime</span><span class="f">;</span>        <span class="k">/* User CPU time [usec] */</span>
<a name="118" /><span class="True">     118:</span>     <span class="b">__u64</span>    <span class="b">ac_stime</span><span class="f">;</span>        <span class="k">/* SYstem CPU time [usec] */</span>
<a name="119" /><span class="True">     119:</span>     <span class="b">__u64</span>    <span class="b">ac_minflt</span><span class="f">;</span>        <span class="k">/* Minor Page Fault Count */</span>
<a name="120" /><span class="True">     120:</span>     <span class="b">__u64</span>    <span class="b">ac_majflt</span><span class="f">;</span>        <span class="k">/* Major Page Fault Count */</span>
<a name="121" /><span class="True">     121:</span>     <span class="k">/* Basic Accounting Fields end */</span>
<a name="122" /><span class="True">     122:</span> 
<a name="123" /><span class="True">     123:</span>     <span class="k">/* Extended accounting fields start */</span>
<a name="124" /><span class="True">     124:</span>     <span class="k">/* Accumulated RSS usage in duration of a task, in MBytes-usecs.</span>
<a name="125" /><span class="True">     125:</span> <span class="k">     * The current rss usage is added to this counter every time</span>
<a name="126" /><span class="True">     126:</span> <span class="k">     * a tick is charged to a task&apos;s system time. So, at the end we</span>
<a name="127" /><span class="True">     127:</span> <span class="k">     * will have memory usage multiplied by system time. Thus an</span>
<a name="128" /><span class="True">     128:</span> <span class="k">     * average usage per system time unit can be calculated.</span>
<a name="129" /><span class="True">     129:</span> <span class="k">     */</span>
<a name="130" /><span class="True">     130:</span>     <span class="b">__u64</span>    <span class="b">coremem</span><span class="f">;</span>        <span class="k">/* accumulated RSS usage in MB-usec */</span>
<a name="131" /><span class="True">     131:</span>     <span class="k">/* Accumulated virtual memory usage in duration of a task.</span>
<a name="132" /><span class="True">     132:</span> <span class="k">     * Same as acct_rss_mem1 above except that we keep track of VM usage.</span>
<a name="133" /><span class="True">     133:</span> <span class="k">     */</span>
<a name="134" /><span class="True">     134:</span>     <span class="b">__u64</span>    <span class="b">virtmem</span><span class="f">;</span>        <span class="k">/* accumulated VM  usage in MB-usec */</span>
<a name="135" /><span class="True">     135:</span> 
<a name="136" /><span class="True">     136:</span>     <span class="k">/* High watermark of RSS and virtual memory usage in duration of</span>
<a name="137" /><span class="True">     137:</span> <span class="k">     * a task, in KBytes.</span>
<a name="138" /><span class="True">     138:</span> <span class="k">     */</span>
<a name="139" /><span class="True">     139:</span>     <span class="b">__u64</span>    <span class="b">hiwater_rss</span><span class="f">;</span>        <span class="k">/* High-watermark of RSS usage, in KB */</span>
<a name="140" /><span class="True">     140:</span>     <span class="b">__u64</span>    <span class="b">hiwater_vm</span><span class="f">;</span>        <span class="k">/* High-water VM usage, in KB */</span>
<a name="141" /><span class="True">     141:</span> 
<a name="142" /><span class="True">     142:</span>     <span class="k">/* The following four fields are I/O statistics of a task. */</span>
<a name="143" /><span class="True">     143:</span>     <span class="b">__u64</span>    <span class="b">read_char</span><span class="f">;</span>        <span class="k">/* bytes read */</span>
<a name="144" /><span class="True">     144:</span>     <span class="b">__u64</span>    <span class="b">write_char</span><span class="f">;</span>        <span class="k">/* bytes written */</span>
<a name="145" /><span class="True">     145:</span>     <span class="b">__u64</span>    <span class="b">read_syscalls</span><span class="f">;</span>        <span class="k">/* read syscalls */</span>
<a name="146" /><span class="True">     146:</span>     <span class="b">__u64</span>    <span class="b">write_syscalls</span><span class="f">;</span>        <span class="k">/* write syscalls */</span>
<a name="147" /><span class="True">     147:</span>     <span class="k">/* Extended accounting fields end */</span>
<a name="148" /><span class="True">     148:</span> 
<a name="149" /><span class="True">     149:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VEFTS1NUQVRTX0hBU19JT19BQ0NPVU5USU5HXzA_"><span class="b">TASKSTATS_HAS_IO_ACCOUNTING</span></a>
<a name="150" /><span class="True">     150:</span>     <span class="k">/* Per-task storage I/O accounting starts */</span>
<a name="151" /><span class="True">     151:</span>     <span class="b">__u64</span>    <span class="b">read_bytes</span><span class="f">;</span>        <span class="k">/* bytes of read I/O */</span>
<a name="152" /><span class="True">     152:</span>     <span class="b">__u64</span>    <span class="b">write_bytes</span><span class="f">;</span>        <span class="k">/* bytes of write I/O */</span>
<a name="153" /><span class="True">     153:</span>     <span class="b">__u64</span>    <span class="b">cancelled_write_bytes</span><span class="f">;</span>    <span class="k">/* bytes of cancelled write I/O */</span>
<a name="154" /><span class="True">     154:</span> 
<a name="155" /><span class="True">     155:</span>     <span class="b">__u64</span>  <span class="b">nvcsw</span><span class="f">;</span>            <span class="k">/* voluntary_ctxt_switches */</span>
<a name="156" /><span class="True">     156:</span>     <span class="b">__u64</span>  <span class="b">nivcsw</span><span class="f">;</span>            <span class="k">/* nonvoluntary_ctxt_switches */</span>
<a name="157" /><span class="True">     157:</span> 
<a name="158" /><span class="True">     158:</span>     <span class="k">/* time accounting for SMT machines */</span>
<a name="159" /><span class="True">     159:</span>     <span class="b">__u64</span>    <span class="b">ac_utimescaled</span><span class="f">;</span>        <span class="k">/* utime scaled on frequency etc */</span>
<a name="160" /><span class="True">     160:</span>     <span class="b">__u64</span>    <span class="b">ac_stimescaled</span><span class="f">;</span>        <span class="k">/* stime scaled on frequency etc */</span>
<a name="161" /><span class="True">     161:</span>     <span class="b">__u64</span>    <span class="b">cpu_scaled_run_real_total</span><span class="f">;</span> <span class="k">/* scaled cpu_run_real_total */</span>
<a name="162" /><span class="True">     162:</span> 
<a name="163" /><span class="True">     163:</span>     <span class="k">/* Delay waiting for memory reclaim */</span>
<a name="164" /><span class="True">     164:</span>     <span class="b">__u64</span>    <span class="b">freepages_count</span><span class="f">;</span>
<a name="165" /><span class="True">     165:</span>     <span class="b">__u64</span>    <span class="b">freepages_delay_total</span><span class="f">;</span>
<a name="166" /><span class="True">     166:</span> <span class="f">}</span><span class="f">;</span>
<a name="167" /><span class="True">     167:</span> 
<a name="168" /><span class="True">     168:</span> 
<a name="169" /><span class="True">     169:</span> <span class="k">/*</span>
<a name="170" /><span class="True">     170:</span> <span class="k"> * Commands sent from userspace</span>
<a name="171" /><span class="True">     171:</span> <span class="k"> * Not versioned. New commands should only be inserted at the enum&apos;s end</span>
<a name="172" /><span class="True">     172:</span> <span class="k"> * prior to __TASKSTATS_CMD_MAX</span>
<a name="173" /><span class="True">     173:</span> <span class="k"> */</span>
<a name="174" /><span class="True">     174:</span> 
<a name="175" /><span class="True">     175:</span> <span class="m">enum</span> <span class="f">{</span>
<a name="176" /><span class="True">     176:</span>     <span class="b">TASKSTATS_CMD_UNSPEC</span> <span class="f">=</span> <span class="c">0</span><span class="f">,</span>    <span class="k">/* Reserved */</span>
<a name="177" /><span class="True">     177:</span>     <span class="b">TASKSTATS_CMD_GET</span><span class="f">,</span>        <span class="k">/* user-&gt;kernel request/get-response */</span>
<a name="178" /><span class="True">     178:</span>     <span class="b">TASKSTATS_CMD_NEW</span><span class="f">,</span>        <span class="k">/* kernel-&gt;user event */</span>
<a name="179" /><span class="True">     179:</span>     <span class="b">__TASKSTATS_CMD_MAX</span><span class="f">,</span>
<a name="180" /><span class="True">     180:</span> <span class="f">}</span><span class="f">;</span>
<a name="181" /><span class="True">     181:</span> 
<a name="182" /><span class="True">     182:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VEFTS1NUQVRTX0NNRF9NQVhfMA__"><span class="b">TASKSTATS_CMD_MAX</span></a> <span class="f">(</span><span class="b">__TASKSTATS_CMD_MAX</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span>
<a name="183" /><span class="True">     183:</span> 
<a name="184" /><span class="True">     184:</span> <span class="m">enum</span> <span class="f">{</span>
<a name="185" /><span class="True">     185:</span>     <span class="b">TASKSTATS_TYPE_UNSPEC</span> <span class="f">=</span> <span class="c">0</span><span class="f">,</span>    <span class="k">/* Reserved */</span>
<a name="186" /><span class="True">     186:</span>     <span class="b">TASKSTATS_TYPE_PID</span><span class="f">,</span>        <span class="k">/* Process id */</span>
<a name="187" /><span class="True">     187:</span>     <span class="b">TASKSTATS_TYPE_TGID</span><span class="f">,</span>        <span class="k">/* Thread group id */</span>
<a name="188" /><span class="True">     188:</span>     <span class="b">TASKSTATS_TYPE_STATS</span><span class="f">,</span>        <span class="k">/* taskstats structure */</span>
<a name="189" /><span class="True">     189:</span>     <span class="b">TASKSTATS_TYPE_AGGR_PID</span><span class="f">,</span>    <span class="k">/* contains pid + stats */</span>
<a name="190" /><span class="True">     190:</span>     <span class="b">TASKSTATS_TYPE_AGGR_TGID</span><span class="f">,</span>    <span class="k">/* contains tgid + stats */</span>
<a name="191" /><span class="True">     191:</span>     <span class="b">TASKSTATS_TYPE_NULL</span><span class="f">,</span>        <span class="k">/* contains nothing */</span>
<a name="192" /><span class="True">     192:</span>     <span class="b">__TASKSTATS_TYPE_MAX</span><span class="f">,</span>
<a name="193" /><span class="True">     193:</span> <span class="f">}</span><span class="f">;</span>
<a name="194" /><span class="True">     194:</span> 
<a name="195" /><span class="True">     195:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VEFTS1NUQVRTX1RZUEVfTUFYXzA_"><span class="b">TASKSTATS_TYPE_MAX</span></a> <span class="f">(</span><span class="b">__TASKSTATS_TYPE_MAX</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span>
<a name="196" /><span class="True">     196:</span> 
<a name="197" /><span class="True">     197:</span> <span class="m">enum</span> <span class="f">{</span>
<a name="198" /><span class="True">     198:</span>     <span class="b">TASKSTATS_CMD_ATTR_UNSPEC</span> <span class="f">=</span> <span class="c">0</span><span class="f">,</span>
<a name="199" /><span class="True">     199:</span>     <span class="b">TASKSTATS_CMD_ATTR_PID</span><span class="f">,</span>
<a name="200" /><span class="True">     200:</span>     <span class="b">TASKSTATS_CMD_ATTR_TGID</span><span class="f">,</span>
<a name="201" /><span class="True">     201:</span>     <span class="b">TASKSTATS_CMD_ATTR_REGISTER_CPUMASK</span><span class="f">,</span>
<a name="202" /><span class="True">     202:</span>     <span class="b">TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK</span><span class="f">,</span>
<a name="203" /><span class="True">     203:</span>     <span class="b">__TASKSTATS_CMD_ATTR_MAX</span><span class="f">,</span>
<a name="204" /><span class="True">     204:</span> <span class="f">}</span><span class="f">;</span>
<a name="205" /><span class="True">     205:</span> 
<a name="206" /><span class="True">     206:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VEFTS1NUQVRTX0NNRF9BVFRSX01BWF8w"><span class="b">TASKSTATS_CMD_ATTR_MAX</span></a> <span class="f">(</span><span class="b">__TASKSTATS_CMD_ATTR_MAX</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span>
<a name="207" /><span class="True">     207:</span> 
<a name="208" /><span class="True">     208:</span> <span class="k">/* NETLINK_GENERIC related info */</span>
<a name="209" /><span class="True">     209:</span> 
<a name="210" /><span class="True">     210:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VEFTS1NUQVRTX0dFTkxfTkFNRV8w"><span class="b">TASKSTATS_GENL_NAME</span></a>    <span class="e">&quot;TASKSTATS&quot;</span>
<a name="211" /><span class="True">     211:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VEFTS1NUQVRTX0dFTkxfVkVSU0lPTl8w"><span class="b">TASKSTATS_GENL_VERSION</span></a>    <span class="c">0x1</span>
<a name="212" /><span class="True">     212:</span> 
<a name="213" /><span class="True">     213:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _LINUX_TASKSTATS_H */</span>
<a name="214" /><span class="True">     214:</span> </pre>
  </body>
</html>
